<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <!-- 面试 不经过服务器处理 使用纯前端使用图片本地预览
     1.  URL.createObjectURL(文件对象) 生成一个临时路径 创建地址的页面关闭后,这个路径也随之失效 blob数据类型
     2.  使用文件读取对象FileReader base64格式 图片 会将图片放大30%左右


     传统的方案
     1. 将文件对象发送给服务器
     2. 服务器将图片存储到数据库中
     3. 服务器返回存储在数据库中url地址
     4. 前端拿到url渲染
  -->
  <input type="file">
  <img src="" alt="" width="300">
  <script>
    const ipt = document.querySelector('input')
    const img = document.querySelector('img')
    // 临时路径的方式
    /* ipt.onchange = function(e){
      // console.log(e.target.files[0]);
     const url = URL.createObjectURL(e.target.files[0])
     console.log(url);
     img.src = url
    } */

    // FileReader 文件读取对象 处理 base64格式
    ipt.onchange = function(e){
      console.log(e.target.files[0]);
      // 1. 创建文件读取对象 (创建实例)
      const fd = new FileReader()
      // 2. 读取文件
      fd.readAsDataURL(e.target.files[0])
      // 3. 在读取成功的处理函数中获取到base64地址
      fd.onload = function(){
        console.log(fd.result);
        img.src = fd.result
      }
    }
  </script>
</body>
</html>